/*
 * author      : 吴中勤 
 * date        : 2018/9/3
 * description : sap推送 车系
 */

package com.deepexi.adapter.facade.sap.request;

import com.google.gson.annotations.SerializedName;

import java.util.List;

public class SapPushVehicleInfoBody extends SapPushBaseBody {

//    //    KEYNUM	    唯一编号	String		0..1
//    @SerializedName("KEYNUM")
//    private String keyNum;

    //    WERKS	        门店	String	4	0..1
    @SerializedName("WERKS")
    private String shopCode;

    //    LGORT	        库位	String	4	0..1
    @SerializedName("LGORT")
    private String warehouseCode;

    //    MCATALOG	    品牌	String	4	0..1
    @SerializedName("MCATALOG")
    private String brandCode;

    //    DESCR	        品牌描述	String	30	0..1
    @SerializedName("DESCR")
    private String brandDesc;

    //    MODLINE	    车系	String	20	0..1
    @SerializedName("MODLINE")
    private String modelLineCode;

    //    ZCHEXI_TXT	车系描述	String	40	0..1
    @SerializedName("ZCHEXI_TXT")
    private String modelLineDesc;

    //    MCODESD	    车型	String	18	0..1
    @SerializedName("MCODESD")
    private String modelCode;

    //    MOTEXT1	    车型描述	String	40	0..1
    @SerializedName("MOTEXT1")
    private String modelDesc;

    //    MATNR	        物料号	String	18	0..1
    @SerializedName("MATNR")
    private String materialCode;

    //    VHCLE	        内部车辆编号	String	10	0..1
    @SerializedName("VHCLE")
    private String vehicleCode;

    //    VHVIN	        车架号	String	35	0..1
    @SerializedName("VHVIN")
    private String vinCode;

    //    ENGCODE	    发动机号	String	40	0..1
    @SerializedName("ENGCODE")
    private String engineCode;

    //    QUAN	        数量	Integer		0..1
    @SerializedName("QUAN")
    private String quantity;

    //    PURCPRICE	    采购价格	Decimal		0..1
    @SerializedName("PURCPRICE")
    private String purchasePrice;

    //    SALEPRICE	    车辆销售指导价	Decimal		0..1
    @SerializedName("SALEPRICE")
    private String guidePrice;

    //    STORAGE_DATE	入库日期	Date		0..1
    @SerializedName("STORAGE_DATE")
    private String storageDate;

    //    ZZ0019	    生产日期	Date	8	0..1
    @SerializedName("ZZ0019")
    private String productDate;

    //    OPKEY	        外观编码	String	18	0..1
    @SerializedName("OPKEY")
    private String exteriorPartCode;

    //    COLOR	        外观颜色	String	10	0..1
    @SerializedName("COLOR")
    private String exteriorPartColor;

    //    OPKEY_IN	    内饰编码	String	18	0..1
    @SerializedName("OPKEY_IN")
    private String interiorPartCode;

    //    COLOR_IN	    内饰颜色	String	10	0..1
    @SerializedName("COLOR_IN")
    private String interiorPartColor;

    //    ESTKEY	    合格证号	String	32	0..1
    @SerializedName("ESTKEY")
    private String certificateNo;

    //    ZZ0014	    库龄起始日期 	Date	8	0..1
    @SerializedName("ZZ0014")
    private String storageBeginDate;

    //    IMP_STAT	    进口车辆状态	String	10	0..1
    @SerializedName("IMP_STAT")
    private String importStatus;

    //    ZZ0010	    投产日期	Date	8	0..1
    @SerializedName("ZZ0010")
    private String producedAt;

    //    ZZ0011	    运输日期	Date	8	0..1
    @SerializedName("ZZ0011")
    private String transferedAt;

    //    ZZ0012	    预计到港日期	Date	8	0..1
    @SerializedName("ZZ0012")
    private String expectArrivePortDate;

    //    ZZ0013	    到港日期	Date	8	0..1
    @SerializedName("ZZ0013")
    private String arrivePortDate;

    //    ZZ0018	    提报AAK日期	Date	8	0..1
    @SerializedName("ZZ0018")
    private String reportAAKDate;

    //    ZZ0020	    厂家订单号	String	10	0..1
    @SerializedName("ZZ0020")
    private String mfrOrderNo;

    //    ZZ0021	    厂家整车代码	String	18	0..1
    @SerializedName("ZZ0021")
    private String mfrVehicleCode;

    //    ZYNQZ	        是否前装	String	1	0..1
    @SerializedName("ZYNQZ")
    private String preloadStatus;

    //    AVAILABLE	    是否可用	String	1	0..1
    @SerializedName("AVAILABLE")
    private String avilable;

    @SerializedName("Items")
    List<VehicleItem> preloadList;
//    Items				0..*
//        OPMATNR	前装物料号	String	18	0..1
//        OPMAKTX	前装物料描述	String	40	0..1
//        OPNUM	    前装物料数量	String	40	0..1

    public static class VehicleItem {
        @SerializedName("OPMATNR")
        private String material;

        @SerializedName("OPMAKTX")
        private String materialDesc;

        @SerializedName("OPNUM")
        private String materialQty;

        public String getMaterial() {
            return material;
        }

        public void setMaterial(String material) {
            this.material = material;
        }

        public String getMaterialDesc() {
            return materialDesc;
        }

        public void setMaterialDesc(String materialDesc) {
            this.materialDesc = materialDesc;
        }

        public String getMaterialQty() {
            return materialQty;
        }

        public void setMaterialQty(String materialQty) {
            this.materialQty = materialQty;
        }
    }

    // === set && get ===

//    public String getKeyNum() {
//        return keyNum;
//    }
//
//    public void setKeyNum(String keyNum) {
//        this.keyNum = keyNum;
//    }

    public String getShopCode() {
        return shopCode;
    }

    public void setShopCode(String shopCode) {
        this.shopCode = shopCode;
    }

    public String getWarehouseCode() {
        return warehouseCode;
    }

    public void setWarehouseCode(String warehouseCode) {
        this.warehouseCode = warehouseCode;
    }

    public String getBrandCode() {
        return brandCode;
    }

    public void setBrandCode(String brandCode) {
        this.brandCode = brandCode;
    }

    public String getBrandDesc() {
        return brandDesc;
    }

    public void setBrandDesc(String brandDesc) {
        this.brandDesc = brandDesc;
    }

    public String getModelLineCode() {
        return modelLineCode;
    }

    public void setModelLineCode(String modelLineCode) {
        this.modelLineCode = modelLineCode;
    }

    public String getModelLineDesc() {
        return modelLineDesc;
    }

    public void setModelLineDesc(String modelLineDesc) {
        this.modelLineDesc = modelLineDesc;
    }

    public String getModelCode() {
        return modelCode;
    }

    public void setModelCode(String modelCode) {
        this.modelCode = modelCode;
    }

    public String getModelDesc() {
        return modelDesc;
    }

    public void setModelDesc(String modelDesc) {
        this.modelDesc = modelDesc;
    }

    public String getMaterialCode() {
        return materialCode;
    }

    public void setMaterialCode(String materialCode) {
        this.materialCode = materialCode;
    }

    public String getVehicleCode() {
        return vehicleCode;
    }

    public void setVehicleCode(String vehicleCode) {
        this.vehicleCode = vehicleCode;
    }

    public String getVinCode() {
        return vinCode;
    }

    public void setVinCode(String vinCode) {
        this.vinCode = vinCode;
    }

    public String getEngineCode() {
        return engineCode;
    }

    public void setEngineCode(String engineCode) {
        this.engineCode = engineCode;
    }

    public String getQuantity() {
        return quantity;
    }

    public void setQuantity(String quantity) {
        this.quantity = quantity;
    }

    public String getPurchasePrice() {
        return purchasePrice;
    }

    public void setPurchasePrice(String purchasePrice) {
        this.purchasePrice = purchasePrice;
    }

    public String getGuidePrice() {
        return guidePrice;
    }

    public void setGuidePrice(String guidePrice) {
        this.guidePrice = guidePrice;
    }

    public String getStorageDate() {
        return storageDate;
    }

    public void setStorageDate(String storageDate) {
        this.storageDate = storageDate;
    }

    public String getProductDate() {
        return productDate;
    }

    public void setProductDate(String productDate) {
        this.productDate = productDate;
    }

    public String getExteriorPartCode() {
        return exteriorPartCode;
    }

    public void setExteriorPartCode(String exteriorPartCode) {
        this.exteriorPartCode = exteriorPartCode;
    }

    public String getExteriorPartColor() {
        return exteriorPartColor;
    }

    public void setExteriorPartColor(String exteriorPartColor) {
        this.exteriorPartColor = exteriorPartColor;
    }

    public String getInteriorPartCode() {
        return interiorPartCode;
    }

    public void setInteriorPartCode(String interiorPartCode) {
        this.interiorPartCode = interiorPartCode;
    }

    public String getInteriorPartColor() {
        return interiorPartColor;
    }

    public void setInteriorPartColor(String interiorPartColor) {
        this.interiorPartColor = interiorPartColor;
    }

    public String getCertificateNo() {
        return certificateNo;
    }

    public void setCertificateNo(String certificateNo) {
        this.certificateNo = certificateNo;
    }

    public String getStorageBeginDate() {
        return storageBeginDate;
    }

    public void setStorageBeginDate(String storageBeginDate) {
        this.storageBeginDate = storageBeginDate;
    }

    public String getImportStatus() {
        return importStatus;
    }

    public void setImportStatus(String importStatus) {
        this.importStatus = importStatus;
    }

    public String getProducedAt() {
        return producedAt;
    }

    public void setProducedAt(String producedAt) {
        this.producedAt = producedAt;
    }

    public String getTransferedAt() {
        return transferedAt;
    }

    public void setTransferedAt(String transferedAt) {
        this.transferedAt = transferedAt;
    }

    public String getExpectArrivePortDate() {
        return expectArrivePortDate;
    }

    public void setExpectArrivePortDate(String expectArrivePortDate) {
        this.expectArrivePortDate = expectArrivePortDate;
    }

    public String getArrivePortDate() {
        return arrivePortDate;
    }

    public void setArrivePortDate(String arrivePortDate) {
        this.arrivePortDate = arrivePortDate;
    }

    public String getReportAAKDate() {
        return reportAAKDate;
    }

    public void setReportAAKDate(String reportAAKDate) {
        this.reportAAKDate = reportAAKDate;
    }

    public String getMfrOrderNo() {
        return mfrOrderNo;
    }

    public void setMfrOrderNo(String mfrOrderNo) {
        this.mfrOrderNo = mfrOrderNo;
    }

    public String getMfrVehicleCode() {
        return mfrVehicleCode;
    }

    public void setMfrVehicleCode(String mfrVehicleCode) {
        this.mfrVehicleCode = mfrVehicleCode;
    }

    public String getPreloadStatus() {
        return preloadStatus;
    }

    public void setPreloadStatus(String preloadStatus) {
        this.preloadStatus = preloadStatus;
    }

    public String getAvilable() {
        return avilable;
    }

    public void setAvilable(String avilable) {
        this.avilable = avilable;
    }

    public List<VehicleItem> getPreloadList() {
        return preloadList;
    }

    public void setPreloadList(List<VehicleItem> preloadList) {
        this.preloadList = preloadList;
    }
}
